//[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
/**
 *
 *@file		motion_bl.h
 *@brief	モーションブラー
 *@author	tomoya takahashi
 *@data		2005.07.27
 *
 */
//]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
#include <nitro.h>

#ifndef __MOTION_BL_H__
#define __MOTION_BL_H__

#undef GLOBAL
#ifdef	__MOTION_BL_H_GLOBAL
#define	GLOBAL	/* */
#else
#define	GLOBAL	extern
#endif


//-----------------------------------------------------------------------------
/**
 *					定数宣言
*/
//-----------------------------------------------------------------------------

//-----------------------------------------------------------------------------
/**
 *					構造体宣言
*/
//-----------------------------------------------------------------------------
//-------------------------------------
//
//	モーションブラー初期化構造体
//
//=====================================
typedef struct {
	// グラフィックモード
	GXDispMode dispMode;	// ディスプレイモード
	GXBGMode bgMode;		// BGモード
	GXBG0As bg0_2d3d;		// BG0を3dに使用するか

	// キャプチャ
	GXCaptureSize sz;		// キャプチャサイズ
    GXCaptureMode mode;		// キャプチャモード
    GXCaptureSrcA a;		// キャプチャ先A
    GXCaptureSrcB b;		// キャプチャ先B
    GXCaptureDest dest;		// キャプチャデータ転送Vram
    int eva;				// ブレンド係数A
    int evb;				// ブレンド係数B

	int heap_id;			// 使用するヒープID
}MOTION_BL_DATA;


typedef struct _MOTION_BL_TASK*	MOTION_BL_PTR;	// モーションブラー動作オブジェクト

//-----------------------------------------------------------------------------
/**
 *					プロトタイプ宣言
*/
//-----------------------------------------------------------------------------
//----------------------------------------------------------------------------
/**
 *
 *@brief	モーションブラーを使える状態に初期化
 *
 *@param	init		初期化データ
 *
 *@return	MOTION_BL_PTR	モーションブラーオブジェクト
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL MOTION_BL_PTR MOTION_BL_Init(MOTION_BL_DATA* init);

//----------------------------------------------------------------------------
/**
 *
 *@brief	モーションブラーを解除
 *
 *@param	data		モーションブラーオブジェクト
 *
 *@return	none
 *
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL void MOTION_BL_Delete(MOTION_BL_PTR* data, GXDispMode dispMode, GXBGMode bgMode, GXBG0As bg0_2d3d);

//----------------------------------------------------------------------------
/**
 *
 *@brief	途中でパラメーターを変更する
 *
 *@param	eva			ブレンド係数A		Capture元
 *@param	evb			ブレンド係数B		Captureデータ転送先
 *
 *@return	none
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL void MOTION_BL_ParamChg(MOTION_BL_PTR data, int eva, int evb);


#undef	GLOBAL
#endif		// __MOTION_BL_H__
